Method and system for synchronising bookmarks

ABSTRACT

Systems and methods for synchronising bookmarks between communications devices are provided. Bookmarks refer to user-defined and nicknamed URLs as local parameters in Browser software, also sometimes known as “Favourites”. Real-time synchronisation of bookmarks is accomplished through an application of “push technology”. Upon identifying a change in the set of bookmarks of a communications device, the communications device transmits an indication of the change to the network. The network uses push technology to push the indication to the other communications device. Once the indication is received by the other communications device, the other communications device updates its set of bookmarks according to the indication thereby achieving synchronisation. Synchronisation may be performed between two or more devices.

FIELD OF THE APPLICATION

The application relates to communication systems, and more particularlyto synchronising bookmarks.

BACKGROUND

An Internet-enabled device allows a user to browse Internet sites usingan Internet browser. An Internet site is addressed by a URL (UniformResource Locator), which identifies and distinguishes the Internet sitefrom all other Internet sites of the Internet. Typically, the Internetbrowser allows the user to save a bookmark on the Internet-enableddevice when the user has found an Internet site that may be ofparticular interest. The bookmark identifies the Internet site's URL sothat the user does not have to remember the URL. Instead, the userassociates a user-defined nickname with the URL. At some later time, theuser may visit the Internet site using the Internet browser by selectingthe bookmark. In this manner, there is no need for the user to manuallyenter the URL.

Some users may have more than one Internet-enabled device for browsingInternet sites. Accordingly, such users may have more than one set ofbookmarks, which may lead to inconveniences. For example, if the userwants to visit a particular Internet site on an Internet-enabled device,but the particular Internet site is bookmarked only on anotherInternet-enabled device, then the user cannot use the bookmark to visitthe particular Internet site. Manually entering bookmarks between twoInternet-enabled devices is cumbersome. Furthermore, someInternet-enabled devices browse only scaled down versions of Internetsites due to limitations in screen size, processor, or browser software.Therefore, while a particular bookmark to a non-scaled down Internetsite may be useful on a first Internet-enabled device, it may not beuseful on a second Internet-enabled device that displays only scaleddown Internet sites.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described with reference to the attacheddrawings in which:

FIG. 1 is a schematic of an example communication system havingcommunications devices and a network;

FIG. 2 is a schematic of an example wireless device;

FIG. 3 is a schematic of an example tree hierarchy of a set ofbookmarks;

FIGS. 4 through 7 are flowcharts of an example method of synchronising aset of bookmarks; and

FIGS. 8 through 10 are flowcharts of example methods of pushing anindication to update a set of bookmarks.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

According to a broad aspect, there is provided a method in acommunications device comprising: maintaining a set of bookmarks on anongoing basis; receiving using push technology an indication from anetwork to update the set of bookmarks so as to synchronise at least aportion of the set of bookmarks with another set of bookmarks storedelsewhere; and updating the set of bookmarks according to theindication.

In some embodiments, the method further comprises: detecting that aredirection has taken place from a first site to a second site; andupdating a bookmark referring to the first site so that it refers to thesecond site.

In some embodiments, editing the at least one existing bookmarkcomprises at least on of: editing a bookmark name, and editing abookmark URL (uniform resource locator); and updating the tree structureof the set of bookmarks comprises at least one of: deleting a folder,renaming a folder, moving a folder, and moving a bookmark.

In some embodiments, identifying that at least one existing bookmark hasbeen edited comprises at least on of: identifying that a bookmark namehas been edited, and identifying that a bookmark URL (uniform resourcelocator) has edited; and identifying that a tree structure of the set ofbookmarks has been changed comprises at least one of: identifying that afolder has been deleted, identifying that a folder has been renamed,identifying that a folder has been moved, and identifying that abookmark has been moved.

In some embodiments, the user input is via a web interface.

According to another broad aspect, there is provided a computer readablemedium having computer executable instructions stored thereon forexecution on a communications device so as to implement the methodsummarised above.

According to another broad aspect, there is provided a communicationsdevice comprising: a set of bookmarks; and a bookmark synchronisationfunction adapted to: a) maintain the set of bookmarks on an ongoingbasis; b) receive using push technology an indication from a network toupdate the set of bookmarks so as to synchronise at least a portion ofthe set of bookmarks with another set of bookmarks stored elsewhere; andc) update the set of bookmarks according to the indication.

In some embodiments, the communications device is a wireless device, thewireless device being an always-on device and comprising: a wirelessaccess radio adapted to communicate wirelessly with the network.

According to another broad aspect, there is provided a method in aredirector comprising: receiving a first indication from a firstcommunications device of a plurality of communications devices, thefirst indication concerning bookmarks of the first communicationsdevice; determining at least one other communications device of theplurality of communications devices that is to be synchronised with thefirst communications device; generating a second indication indicatingdifferences between bookmarks of the first communications device andbookmarks of the at least one other communications device, the secondindication being generated based on at least the first indication; andpushing the second indication to the at least one other communicationsdevice.

In some embodiments, the method further comprises: determining whetherthere is a corresponding site to a site referred to by the firstindication that would be more appropriate for the at least onecommunications device; and if it has been determined that there is acorresponding site that would be more appropriate for the at least onecommunications device, generating the second indication to refer to thecorresponding site before pushing the second indication.

In some embodiments, the method further comprises: receiving anidentification of all bookmarks and/or properties from a firstcommunications device; determining whether the identification of allbookmarks and/or properties is to be pushed to a second communicationsdevice; and if the identification of all bookmarks and/or properties isto be pushed to the second communications device, pushing theidentification of all bookmarks and/or properties to the secondcommunications device.

In some embodiments, the permissions are determined based on userauthentications.

According to another broad aspect, there is provided a computer readablemedium having computer executable instructions stored thereon forexecution on a redirector so as to implement the method summarisedabove.

According to another broad aspect, there is provided a redirectoradapted to: receive a first indication from a first communicationsdevice of a plurality of communications devices, the first indicationconcerning bookmarks of the first communications device; determine atleast one other communications device of the plurality of communicationsdevices that is to be synchronised with the first communications device;generate a second indication indicating differences between bookmarks ofthe first communications device and bookmarks of the at least one othercommunications device, the second indication being generated based on atleast the first indication; and push the second indication to the atleast one other communications device.

Communication System

Referring now to FIG. 1, shown is a schematic of an examplecommunication system having communications devices 10, 40 and a network20. The communications devices 10, 40 include a first communicationsdevice 10 and a second communications device 40. There may be othercommunications devices, but they are not shown for sake of simplicity.The first communications device 10 has a set of bookmarks 11 coupled toan Internet browser 12, and also a bookmark synchronisation function 14.The Internet browser 12 and the bookmark synchronisation function 14 areeach coupled to a processor 13. The first communications device 10 mayhave other components, but they are not shown for sake of simplicity.The second communications device 40 has similar components as the firstcommunications device 10, but they are not shown for sake of simplicity.The network 20 has a redirector 30 and is coupled to the firstcommunications device 10 through coupling 15 and to the secondcommunications device 40 through coupling 16. The network 20 may haveother components, but they are not shown for sake of simplicity.Couplings 15 and 16 are illustrated in a logical sense to be directlybetween the network and the communications devices. However, the“network” may include multiple networks such as a wireless accessnetwork and a wireless network. Furthermore, the nature of the networkmay change if one or both of the communications devices are mobiledevices.

In operation, the Internet browser 12 allows a user of the firstcommunications device 10 to browse sites of the Internet and/or a localarea Intranet. The Internet browser 12 also allows the user to maintainthe set of bookmarks 11 on the first communications device. The bookmarksynchronization function 14 operates to synchronize at least a portionof the set of bookmarks 11 with another set of bookmarks storedelsewhere. The another set of bookmarks may be stored on anothercommunications device, for example on the second communications device40.

The synchronization process between the two communications devices 10,40 may for example be triggered by a change in a set of bookmarks storedon one of the communications devices 10, 40. For example, if the set ofbookmarks 11 stored on the first communications device 10 is changed,then the first communications device 10 transmits to the network 20 afirst indication of the change to the set of bookmarks 11. Theredirector 30 receives the first indication, generates a secondindication based on the first indication, and automatically pushes thesecond indication to the second communications device 40 using “pushtechnology”. By contrast with polling techniques, push technologyenables the second indication to be delivered to the secondcommunications device 40 without the second communications device 40requesting transmission of the second indication.

There may be other events triggering the synchronization process. Insome implementations, user input can trigger the synchronizationprocess. User input can be used to trigger the synchronization processif for example the two communications devices 10, 40 are beingsynchronized for the first time. In some implementations, eachcommunications device 10, 40 transmits an indication of at least asubset of its set of bookmarks. In some implementations, the redirector30 compares the entire sets of bookmarks, determines differences betweenthem, and transmits indications to each communications device 10, 40 toupdate its set of bookmarks so as to achieve synchronization. Otherimplementations are possible.

In some implementations, synchronization may occur in either direction.For example, in some implementations changes to the bookmarks of thesecond communications device 40 triggers an indication to be transmittedto the first communications device 10 via the network 20 so that the setof bookmarks on the first communications device 10 can be updated.Further details of the synchronization process are provided below withreference to FIGS. 4 through 9.

In the illustrated example, the redirector 30 is shown as a singlecomponent. However, in other implementations, the redirector 30 hasseparate components. The components may be distributed throughout thenetwork 20, or localised in a single location. The components may be anyappropriate components suitable for combination. The redirector 30 maybe implemented as hardware, software, firmware, or any appropriatecombination thereof.

The Internet browser 12 and the bookmark synchronization function 14 areeach implemented as software and are executed on the processor 13.However, more generally, the Internet browser 12 and the bookmarksynchronization function 14 may each be implemented as hardware,software, firmware, or any appropriate combination thereof.

In the illustrated example, the components of the first communicationsdevice 10 are shown to be separate components. However, in otherimplementations, some components are combined. For example, in someimplementations, the Internet browser 12 and the set of bookmarks 11 arecombined as a single component. In other implementations, the Internetbrowser 12 and the bookmark synchronization function 14 are combined asa single component. Other appropriate combinations may be possible.

Communications Device

In the illustrated example, the communications devices 10, 40 may eachbe any appropriate communications device, such as a desktop computer, alaptop computer, or a wireless device. Referring now to FIG. 2, shown isa schematic of an example wireless device 50. The wireless device 50 hasa set of bookmarks 51 coupled to an Internet browser 52, and also has abookmark synchronisation function 54. The Internet browser 52 and thebookmark synchronisation function 54 are each coupled to a processor 53.The wireless device 50 also has a wireless access radio 55. The wirelessdevice 10 may have other components, but they are not shown for sake ofsimplicity.

In operation, the wireless device 50 operates much like thecommunications device 10 shown in FIG. 1, except that all communicationswith the network, which includes a wireless network (not shown), aredone wirelessly via the wireless access radio 55. In order for thewireless device 50 to receive an indication using push technology, thewireless device 50 has a wireless connection to the wireless network. Insome implementations, the wireless device 50 is an “always-on” device.An “always-on” device is a device that is not only connected to thenetwork, but is also in a position to listen and react to events andnotifications coming from other sources connected to the network or fromthe network itself.

It is to be noted that the wireless device 50 shown in FIG. 2 is merelyfor example purposes only. Variations and modifications are possible,such as those discussed above for the communications device 10 shown inFIG. 1.

Example Set of Bookmarks

As noted above, a communications device maintains a set of bookmarks. Insome implementations, the set of bookmarks is maintained as a list. Inother implementations, the set of bookmarks is maintained as a treehierarchy of bookmarks. This allows a user to organise the bookmarks inany appropriate manner. Referring now to FIG. 3, shown is a schematic ofan example tree hierarchy 33 of bookmarks. This tree hierarchy 33 ofbookmarks may be maintained by a communications device, for example anyof the communications devices 10, 40 shown in FIG. 1 or thecommunications wireless device 50 shown in FIG. 2.

The tree hierarchy 33 has two top-level folders: folder A and folder B.Folder A has two bookmarks: bookmark 1 and bookmark 2. Folder B has twosub-folders: folder C and folder F. Folder C has two sub-folders: folderD and folder E. Folder D has two bookmarks: bookmark 3 and bookmark 4.Folder E has two bookmarks: bookmark 5 and bookmark 6. Folder F hasthree bookmarks: bookmark 7, bookmark 8, and bookmark 9. It is to beunderstood that this tree hierarchy 33 is very specific for examplepurposes only.

Each one of the bookmarks 1 through 9 has a respective URL (not shown)and a respective display name, for example “bookmark 3”. In someimplementations, display names are customizable by the user. This allowsthe user to choose appropriate display names so that the user may betteridentify and differentiate between the bookmarks. The folders haverespective names, for example “folder B”, which may also be customisedby the user for organisation proposes.

In some implementations, when the bookmarks are displayed on a wirelessdevice, the bookmarks are displayed as a scaled-down version of thecorresponding bookmarks of the desktop computer. This facilitatesbookmarks to be displayed on a small display, which wireless devicestypically have in comparison with a desktop computer.

Method in a Communications Device

Referring now to FIGS. 4 through 7, shown are flowcharts of an examplemethod of synchronizing a set of bookmarks. This method may beimplemented in a communications device, for example any of thecommunications devices 10, 40 shown in FIG. 1 or the wireless device 50shown in FIG. 2.

Starting with FIG. 4, the communications device maintains a set ofbookmarks on an ongoing basis at step 4-1. This may, for example,involve a user of the device adding bookmarks to the set and/or deletingbookmarks from the set. Any such changes get updated in the set ofbookmarks that are being maintained. If at step 4-2 the communicationsdevice receives using push technology an indication from the network toupdate the set of bookmarks so as to synchronise at least a portion ofthe set of bookmarks with another set of bookmarks stored elsewhere,then at step 4-3 the communications device updates the set of bookmarksaccording to the indication.

There are many possibilities for the indication. In someimplementations, the indication includes change information. Changeinformation indicates differences between the set of bookmarks and theanother set of bookmarks stored elsewhere. For example, if a particularbookmark is deleted in the another set of bookmarks, then the changeinformation indicates only that the particular bookmark has beendeleted. The indication does not include information about otherexisting bookmarks that have not been changed. In other implementations,the indication includes information regarding each and every bookmark inthe another set of bookmarks stored elsewhere. Other implementations arepossible.

There are many ways that the communications device may update the set ofbookmarks according to the indication. Referring now to FIG. 5, if atstep 5-1 the communications device is to update the set of bookmarksaccording to the indication, then the communications device performs atleast one of steps 5-2 through 5-5 depending on the indication. Thecommunications device adds a new bookmark according to the indication atstep 5-2, edits an existing bookmark according to the indication at step5-3, deletes an existing bookmark according to the indication at step5-4, and updates the tree structure of the set of bookmarks according tothe indication at step 5-5.

There are many ways that the communications device may edit the existingbookmark. The communications device may for example edit a bookmarkname, and/or edit a bookmark URL (uniform resource locator).

There are many ways that the communications device may update the treestructure of the set of bookmarks. The communications device may forexample delete a folder, rename a folder, move a folder, and/or move abookmark within a folder or from one folder to another folder.

Corresponding Sites

Some sites are intended to be displayed on large displays while othersites are intended to be displayed on small displays such as those of awireless device. Sometimes there is more than one version of the samesite, each version having its own respective URL. For example,mobile.msn.com is a corresponding site to msn.com and is specificallyintended for mobile browsers. Therefore, in some implementations, whenthe synchronisation process is between a communications device having amobile browser and a communications device having a non-mobile browser,consideration is given as to whether or not the bookmarks areappropriate for a given communications device and/or its Internetbrowser. There are many ways that this can be accomplished. Examples areprovided below.

In some embodiments, the communications device updates its own bookmarkswhen appropriate. Some sites are capable of automatically redirecting anInternet browser to a corresponding site based on the Internet browser.For example, a mobile browser visiting msn.com will be automaticallyredirected to mobile.msn.com. Accordingly, in some implementations, thecommunications device detects that its Internet browser has beenredirected to a corresponding site and updates its set of bookmarksbased on the redirection. For example, if the set of bookmarks containsmsn.com and the communications device is redirected from msn.com tomobile.msn.com, then the communications device edits the bookmarkreferring to msn.com so that it instead refers to mobile.msn.com.Accordingly, the next time the user uses this bookmark, there will be noredirection. In some implementations, once bookmarks of a communicationsdevice have been updated by the synchronisation process, thecommunications device checks the updated bookmarks to see ifredirections are prompted and updates its bookmarks accordingly. Inother implementations, the communications device detects redirectionsand updates bookmarks accordingly only when a user visits the sitesprompting redirection. Other implementations are possible.

The above examples assume that a communications device updates itsbookmarks based on site redirections. In another implementation, theredirector of the network knows not to push exactly the same bookmarkwhen synchronising if another version of the bookmark would be bettersuited to the recipient's Internet browser. In some implementations,when the redirector is to push a given bookmark to a communicationsdevice, the redirector determines whether there is a corresponding siteto the site referred to by the given bookmark that would be moreappropriate for the communications device. If there is a correspondingsite that would be more appropriate, then the redirector changes thebookmark to refer to the corresponding site before pushing the bookmark.In some implementations, the redirector determines whether there is acorresponding site based on a record that is maintained by anadministrator. Other implementations are possible.

The method described above with reference to FIGS. 4 and 5 relate to asituation in which a modification to the another set of bookmarks storedelsewhere is reflected in the indication received so that thecommunications device may update its set of bookmarks accordingly. Insome implementations, a modification to the set of bookmarks of thecommunications device is reflected in an indication transmitted so thatthe another set of bookmarks stored elsewhere may be updatedaccordingly. An example is provided below.

Referring now to FIG. 6, shown is an example method of sending anindication so that the another set of bookmarks stored elsewhere may beupdated accordingly. If at step 6-1 the communications device identifiesa change in the set of bookmarks other than changes caused by updatingthe set of bookmarks according to a received indication, then at step6-2 the communications device sends an indication of the change to thenetwork. Once the network receives the indication, then the network canpush an indication of change to the appropriate recipient so as toachieve synchronisation. Changes caused by updating the set of bookmarksaccording to a received indication are not considered, as such changeshave not originated in the communications device.

There are many possible changes to the set of bookmarks that thecommunications device may identify. Referring now to FIG. 7, shown areexample changes that the communications device may identify. If thecommunications device identifies that a bookmark has been added at step7-1, that an existing bookmark has been edited at step 7-2, that anexisting bookmark has been deleted at step 7-3, or that the treestructure of the set of bookmarks has been changed at step 7-4, then atstep 7-5 the communications device has identified a change in the set ofbookmarks. Execution of any one or more of steps 7-1 through 7-4 meansthat a change in the set of bookmarks has been identified.

There are many ways that the communications device may identify that anexisting bookmark has been edited. The communications device may forexample identify that a bookmark name has been edited, and/or identifythat a bookmark URL (uniform resource locator) has edited.

There are many ways that the communications device may identify that atree structure has been changed. The communications device may forexample identify that a folder has been deleted, identify that a folderhas been renamed, identify that a folder has been moved, and/or identifythat a bookmark has been moved.

In some implementations, changes to the set of bookmarks are identifiedautomatically without user input. In some implementations, such changesare detected automatically while the Internet browser application isrunning or when the Internet browser application becomes online. Inother implementations, the communications device accepts user input foridentifying changes. The user input may be via any appropriateinterface, for example a web interface. The user may identify only aportion of the changes. Accordingly, in some implementations, only aportion of the set of bookmarks is synchronised.

In the embodiment described above with reference to FIGS. 7 and 8 thecommunications device transmits an indication of a change of the set ofbookmarks. In another embodiment the communications device transmits anindication of the entire set of bookmarks or a subset of the set ofbookmarks. More generally, the communications device transmits anindication concerning the set of bookmarks. In some implementations, thecommunications device transmits the indication of the set of bookmarksso as to synchronize at least a portion of the set of bookmarks for thefirst time. In some implementations, the redirector uses the indicationof the set of bookmarks to determine the differences (if any) betweenthe set of bookmarks and the another set of bookmarks stored elsewhere.Accordingly, the redirector can push an indication of the difference(s)to the other communications device so as to achieve synchronization.Further example details of the redirector are provided below withreference to FIG. 8.

Method in a Redirector

Referring now to FIGS. 8 through 10, shown are flowcharts of examplemethods of pushing an indication to update a set of bookmarks. Thesemethods may be implemented by a redirector that is coupled to a firstcommunications device and a second communications device, for example bythe redirector 30 shown in FIG. 1. The redirector is an anchor point forbookmark synchronizing actions.

Referring first to FIG. 8, at step 8-1 the redirector receives a firstindication from the first communications device. The first indicationconcerns a first set of bookmarks of the first communications device.The first indication may for example indicate a change to the first setof bookmarks, indicate the entire first set of bookmarks, or indicate asubset of the first set of bookmarks. After receiving the firstindication, at step 8-2 the redirector determines a secondcommunications device that is to be synchronized with the firstcommunications device. At step 8-3, the redirector generates a secondindication indicating differences between bookmarks of the firstcommunications device and bookmarks of the second communications device.The redirector generates the second indication based on at least thefirst indication. After the second indication has been generated, atstep 8-4 the redirector pushes the second indication to the secondcommunications device.

In some implementations, if the second communications device is notreachable, then the redirector places the indication in a queue. In someimplementations, upon detecting that the second communications devicehas become reachable, the indication is pushed to the secondcommunications device through the network. In some implementations, theindication is pushed to the second communications device through thenetwork only if the second communications device is currently runningits Internet-browser application. Other implementations are possible.

In the illustrated example, the redirector receives a first indicationfrom the first communications device and pushes a second indication tothe second communications device. However, it is to be understood thatsynchronisation may occur in either direction. Accordingly, the methoddescribed above is also applicable to a situation in which theredirector receives a second indication from the second communicationsdevice and pushes a first indication to the first communications device.

There are many ways that the redirector can generate the secondindication. In some implementations, the manner in which the secondindication is generated is dependent upon the first indication. As notedabove, the first indication may for example indicate a change to thefirst set of bookmarks. In some implementations, the second indicationis generated so as to indicate such change. In specific implementations,the second indication is identical to the first indication. As alsonoted above, the first indication may for example indicate the entirefirst set of bookmarks, or a subset of the first set of bookmarks. Insuch implementations, the first indication may not indicate a change inthe first set of bookmarks per se. However, the redirector nonethelessis capable of generating a second indication of changes to be applied tothe second set of bookmarks of the second communications device. Anexample is provided below with reference to FIG. 9.

Referring now to FIG. 9, shown is a flowchart of another example methodof pushing an indication to update a set of bookmarks. At step 9-1, theredirector maintains a respective set of bookmarks for eachcommunications device. The respective set of bookmarks for acommunications device is separate, but related, to the set of bookmarksmaintained by the communications device. If at step 9-2 the redirectorreceives a first indication from the first communications device, thenat step 9-3 the redirector updates the respective set of bookmarks ofthe first communications device according to the first indication. Atstep 9-4, the redirector generates the second indication based ondifferences between the respective set of bookmarks of the firstcommunications device and the respective set of bookmarks of the atleast one communications device. At step 9-5, the redirector pushes thesecond indication to the second communications device.

There are many possibilities for the second indication. In someimplementations, the second indication includes change informationindicating changes to be applied to the second set of bookmarks of thesecond communications device. In other implementations, the secondindication includes a set or subset of bookmarks to be added to thesecond set of bookmarks of the second communications device. In otherimplementations, the second indication includes a complete set ofbookmarks to replace the second set of bookmarks of the secondcommunications device. Other implementations are possible.

There may be many communications devices coupled to the network. In someimplementations, the redirector assumes that each communications devicehas permission to update bookmarks on another communications device. Forexample, in the illustrated example presented above, the redirector mayassume that the first communications device has permission to update thesecond set of bookmarks of the second communications device. In otherimplementations, the redirector maintains an identification ofpermissions so that a communications device can update a set ofbookmarks on another communications device only if there is permissionto do so. An example is provided below with reference to FIG. 10.

Referring now to FIG. 10, shown is a flowchart of another example methodof pushing an indication to update a set of bookmarks. At step 10-1 theredirector maintains permissions for updating bookmarks. If at step 10-2the redirector receives a first indication from a first communicationsdevice, then at step 10-3 the redirector determines whether the firstcommunications device has permission to update bookmarks of a secondcommunications device. At step 10-4, if there is permission to updatebookmarks of the second communications device, then the redirectorpushes the indication to the second communications device.

In some implementations, the permissions are pre-configured. Forexample, a user that owns two communications devices may configure thepermissions so that either of the two communications devices may updatebookmarks on the other communications device. In some implementations, auser authentication is performed on a communications device to obtainpermission to update bookmarks on another communications device. Otherimplementations are possible.

User Profiles

In the examples presented above, the communications devices each have asingle set of bookmarks corresponding to a single user. In otherimplementations, at least some communications devices have a pluralityof user profiles. Each user profile includes a respective set ofbookmarks. For example, a communications device having three userprofiles has three corresponding sets of bookmarks. A first usertypically cannot access bookmarks from a second user of the samecommunications device, unless the first user has special permissionssuch as those assigned to an administrator.

When a user is logged on, the user is able to access their set ofbookmarks. The synchronization process is applicable to their set ofbookmarks, and not to bookmarks of users that are not logged on.Therefore, when the user logs off, the user is considered disconnectedfrom the redirector. In some implementations, an indication that is tobe pushed to the communications device for the user is placed in aqueue. Once the user logs back on, the indication is pushed to thecommunications device for the user.

In some implementations, the permissions described above forsynchronization are also specific to the user. For example, a first userof a communications device may have different permissions than a seconduser of the communications device. Other implementations are possible.

Device Replacement

In another embodiment, a first communications device can be replacedwith a second communications device. According to this embodiment, allbookmarks and/or properties that previously existed on the firstcommunications device are loaded onto the second communications device.Specifically, the first communications device uploads the bookmarksand/or properties to the network and the redirector pushes the bookmarksand/or properties to the second communications device. In someimplementations, the redirector then treats the second communicationsdevice as the first communications device. In some implementations, theredirector knows to no longer send any updates to or receive any updatesfrom the first communications device. Other implementations arepossible.

Parent-Child Synchronization

The examples provided above relate to bookmark synchronization betweentwo communications devices whereby changes to a set of bookmarks oneither communications device may trigger the synchronization process.However, it is to be understood that embodiments of the application arealso applicable to synchronization between two communications deviceswhereby only changes to a set of bookmarks on one of the communicationsdevice (i.e. the parent device) triggers the synchronization processwith the other communications device (i.e. the child device).

In some implementations, the user is provided with the option ofselecting between two-way synchronization or parent-childsynchronization. In some implementations, the user determines whichdevice is the parent device and which device is the child device. Insome implementations, the parent-child relationship is determined usingpermissions. For example, the parent device may be assigned permissionto update the set of bookmarks of the child device while the childdevice is not assigned permission to update the set of bookmarks of theparent device. Other implementations are possible.

Bookmark Synchronization Between Three or More Devices

The examples provided above relate to bookmark synchronization betweentwo communications devices. However, it is to be understood thatembodiments of the application are also applicable to synchronizationbetween three or more communications devices. Upon identifying a changein a set of bookmarks of a communications device, the communicationsdevice transmits an indication of the change to the network. The networkuses push technology to push an indication to each of the othercommunications devices. Each of the other communications devices updatesits respective set of bookmarks upon receipt of the indication therebyachieving synchronization.

Numerous modifications and variations of the present application arepossible in light of the above teachings. It is therefore to beunderstood that within the scope of the appended claims, the applicationmay be practised otherwise than as specifically described herein.

1. A method in a communications device comprising: maintaining a set ofbookmarks on an ongoing basis; receiving using push technology anindication from a network to update the set of bookmarks so as tosynchronise at least a portion of the set of bookmarks with another setof bookmarks stored elsewhere; and updating the set of bookmarksaccording to the indication.
 2. The method of claim 1 wherein updatingthe set of bookmarks according to the indication comprises at least oneof: adding at least one new bookmark according to the indication;editing at least one existing bookmark according to the indication;deleting at least one existing bookmark according to the indication; andupdating a tree structure of the set of bookmarks according to theindication.
 3. The method of claim 1 wherein maintaining the set ofbookmarks comprises: maintaining the set of bookmarks according to atree structure, the tree structure providing organisation of the set ofbookmarks.
 4. The method of claim 1 further comprising: sending anindication of at least a subset of the set of bookmarks to the network.5. The method of claim 4 further comprising: receiving user input;wherein sending the indication to the network is in response to the userinput.
 6. The method of claim 1 further comprising: identifying a changein the set of bookmarks of the communications device other than changescaused by updating the set of bookmarks according to the indication; andsending an indication of the change to the network.
 7. The method ofclaim 6 wherein identifying the change in the set of bookmarks comprisesat least one of: identifying that at least one bookmark has been added;identifying that at least one existing bookmark has been edited;identifying that at least one existing bookmark has been deleted; andidentifying that a tree structure of the set of bookmarks has beenchanged.
 8. The method of claim 6 wherein the change in the set ofbookmarks is identified automatically without user input.
 9. The methodof claim 6 wherein identifying the change in the set of bookmarkscomprises: accepting user input for identifying the change.
 10. Themethod of claim 1 further comprising: maintaining a plurality of userprofiles; wherein the set of bookmarks are in respect of one of theplurality of user profiles.
 11. The method of claim 1 wherein receivingusing push technology the indication from the network comprises:receiving using push technology the indication using a wireless accessradio.
 12. The method of claim 1 wherein receiving using push technologythe indication from the network comprises: receiving using pushtechnology change information, the change information being indicativeof at least one change to be applied to the set of bookmarks.
 13. Acomputer readable medium having computer executable instructions storedthereon for execution on a communications device so as to implement themethod of claim
 1. 14. A communications device comprising: a set ofbookmarks; and a bookmark synchronisation function adapted to: a)maintain the set of bookmarks on an ongoing basis; b) receive using pushtechnology an indication from a network to update the set of bookmarksso as to synchronise at least a portion of the set of bookmarks withanother set of bookmarks stored elsewhere; and c) update the set ofbookmarks according to the indication.
 15. A method in a redirectorcomprising: receiving a first indication from a first communicationsdevice of a plurality of communications devices, the first indicationconcerning bookmarks of the first communications device; determining atleast one other communications device of the plurality of communicationsdevices that is to be synchronised with the first communications device;generating a second indication indicating differences between bookmarksof the first communications device and bookmarks of the at least oneother communications device, the second indication being generated basedon at least the first indication; and pushing the second indication tothe at least one other communications device.
 16. The method of claim 15further comprising: maintaining permissions for updating bookmarks;wherein determining the at least one other communications device of theplurality of communications devices that is to be synchronised with thefirst communications device comprises determining which communicationsdevices of the plurality of communications devices to which the firstcommunications device has permission for updating bookmarks.
 17. Themethod of claim 15 wherein: the first indication indicates a change ofthe bookmarks of the first communications device; and the secondindication indicates the change of the bookmarks of the firstcommunications device.
 18. The method of claim 15 further comprising:maintaining a respective set of bookmarks for each of the plurality ofcommunications devices; updating the respective set of bookmarks of thefirst communications device according to the first indication; andgenerating the second indication based on differences between therespective set of bookmarks of the first communications device and therespective set of bookmarks of the at least one communications device.19. A computer readable medium having computer executable instructionsstored thereon for execution on a redirector so as to implement themethod of claim
 15. 20. A redirector adapted to: receive a firstindication from a first communications device of a plurality ofcommunications devices, the first indication concerning bookmarks of thefirst communications device; determine at least one other communicationsdevice of the plurality of communications devices that is to besynchronised with the first communications device; generate a secondindication indicating differences between bookmarks of the firstcommunications device and bookmarks of the at least one othercommunications device, the second indication being generated based on atleast the first indication; and push the second indication to the atleast one other communications device.